package com.owen

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

import scala.util.matching.Regex

/**
  * @ClassName WordCount
  * @Author Owen.Que
  * @Description
  * @Date 10/4/2018 15:42
  **/
object WordCount {
  def main(args: Array[String]): Unit = {
    //输入文件既可以是本地linux系统文件，也可以是其它来源文件，例如HDFS
    if (args.length == 0) {
      System.err.println("Usage: SparkWordCount <inputfile>")
      System.exit(1)
    }
    //以本地线程方式运行，可以指定线程个数，
    //如.setMaster("local[2]")，两个线程执行
    //下面给出的是单线程执行
//    val conf = new SparkConf().setAppName("SparkWordCount").setMaster("local")
    val conf = new SparkConf().setAppName("SparkWordCount")
    val sc = new SparkContext(conf)

    //wordcount操作，计算文件中包含Spark的行数
    val count=sc.textFile(args(0)).filter(line => line.contains("Customer")).count()
    sc.textFile(args(0)).map(line=>{
      val arr: Array[String] = line.split("\\|")
      if(arr.length <3)
        (false,"","","")
        else
        (true,arr(0),arr(1),arr(2))
    }).filter(t => {
      var res=false
      if(t._1){
        val regex: Regex = """([0-9]+)""".r
        res = t._2 match {
          case regex(num) => {
            if (Integer.parseInt(num) < 7) true else false
          }
          case _ => false
        }
      }
      res
    }).saveAsTextFile("/home/tmp/output")


    //打印结果
//    println("value="+list)
    sc.stop()

  }

}
